<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en-US">
<head>
<!-- GenHTML revision 25226-->
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Running the Duke's Tutoring Case Study Application - The Java EE 6 Tutorial</title>
<meta name="robots" content="index,follow">
<meta name="robots" content="index,follow">
<meta name="date" content="2011-03-01">
<link rel="stylesheet" type="text/css" href="css/default.css">
<link rel="stylesheet" type="text/css" href="css/ipg.css">
<link rel="stylesheet" type="text/css" href="css/javaeetutorial.css">
</head>

<body>

<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tbody>
   <tr valign="top">
      <td width="400px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
<p class="toc level1 tocsp"><a href="gexaf.html">Preface</a></p>
<p class="toc level1 tocsp"><a href="gfirp.html">Part&nbsp;I&nbsp;Introduction</a></p>
<p class="toc level2"><a href="bnaaw.html">1.&nbsp;&nbsp;Overview</a></p>
<p class="toc level2"><a href="gfiud.html">2.&nbsp;&nbsp;Using the Tutorial Examples</a></p>
<p class="toc level1 tocsp"><a href="bnadp.html">Part&nbsp;II&nbsp;The Web Tier</a></p>
<p class="toc level2"><a href="bnadr.html">3.&nbsp;&nbsp;Getting Started with Web Applications</a></p>
<p class="toc level2"><a href="bnaph.html">4.&nbsp;&nbsp;JavaServer Faces Technology</a></p>
<p class="toc level2"><a href="giepx.html">5.&nbsp;&nbsp;Introduction to Facelets</a></p>
<p class="toc level2"><a href="gjddd.html">6.&nbsp;&nbsp;Expression Language</a></p>
<p class="toc level2"><a href="bnaqz.html">7.&nbsp;&nbsp;Using JavaServer Faces Technology in Web Pages</a></p>
<p class="toc level2"><a href="gjcut.html">8.&nbsp;&nbsp;Using Converters, Listeners, and Validators</a></p>
<p class="toc level2"><a href="bnatx.html">9.&nbsp;&nbsp;Developing with JavaServer Faces Technology</a></p>
<p class="toc level2"><a href="gkmaa.html">10.&nbsp;&nbsp;JavaServer Faces Technology Advanced Concepts</a></p>
<p class="toc level2"><a href="bnawo.html">11.&nbsp;&nbsp;Configuring JavaServer Faces Applications</a></p>
<p class="toc level2"><a href="gkiow.html">12.&nbsp;&nbsp;Using Ajax with JavaServer Faces Technology</a></p>
<p class="toc level2"><a href="gkhxa.html">13.&nbsp;&nbsp;Advanced Composite Components</a></p>
<p class="toc level2"><a href="bnavg.html">14.&nbsp;&nbsp;Creating Custom UI Components</a></p>
<p class="toc level2"><a href="bnafd.html">15.&nbsp;&nbsp;Java Servlet Technology</a></p>
<p class="toc level2"><a href="bnaxu.html">16.&nbsp;&nbsp;Internationalizing and Localizing Web Applications</a></p>
<p class="toc level1 tocsp"><a href="bnayk.html">Part&nbsp;III&nbsp;Web Services</a></p>
<p class="toc level2"><a href="gijti.html">17.&nbsp;&nbsp;Introduction to Web Services</a></p>
<p class="toc level2"><a href="bnayl.html">18.&nbsp;&nbsp;Building Web Services with JAX-WS</a></p>
<p class="toc level2"><a href="giepu.html">19.&nbsp;&nbsp;Building RESTful Web Services with JAX-RS</a></p>
<p class="toc level2"><a href="gjjxe.html">20.&nbsp;&nbsp;Advanced JAX-RS Features</a></p>
<p class="toc level2"><a href="gkojl.html">21.&nbsp;&nbsp;Running the Advanced JAX-RS Example Application</a></p>
<p class="toc level1 tocsp"><a href="bnblr.html">Part&nbsp;IV&nbsp;Enterprise Beans</a></p>
<p class="toc level2"><a href="gijsz.html">22.&nbsp;&nbsp;Enterprise Beans</a></p>
<p class="toc level2"><a href="gijre.html">23.&nbsp;&nbsp;Getting Started with Enterprise Beans</a></p>
<p class="toc level2"><a href="gijrb.html">24.&nbsp;&nbsp;Running the Enterprise Bean Examples</a></p>
<p class="toc level2"><a href="bnbpk.html">25.&nbsp;&nbsp;A Message-Driven Bean Example</a></p>
<p class="toc level2"><a href="gkcqz.html">26.&nbsp;&nbsp;Using the Embedded Enterprise Bean Container</a></p>
<p class="toc level2"><a href="gkidz.html">27.&nbsp;&nbsp;Using Asynchronous Method Invocation in Session Beans</a></p>
<p class="toc level1 tocsp"><a href="gjbnr.html">Part&nbsp;V&nbsp;Contexts and Dependency Injection for the Java EE Platform</a></p>
<p class="toc level2"><a href="giwhb.html">28.&nbsp;&nbsp;Introduction to Contexts and Dependency Injection for the Java EE Platform</a></p>
<p class="toc level2"><a href="gjbls.html">29.&nbsp;&nbsp;Running the Basic Contexts and Dependency Injection Examples</a></p>
<p class="toc level2"><a href="gjehi.html">30.&nbsp;&nbsp;Contexts and Dependency Injection for the Java EE Platform: Advanced Topics</a></p>
<p class="toc level2"><a href="gkhre.html">31.&nbsp;&nbsp;Running the Advanced Contexts and Dependency Injection Examples</a></p>
<p class="toc level1 tocsp"><a href="bnbpy.html">Part&nbsp;VI&nbsp;Persistence</a></p>
<p class="toc level2"><a href="bnbpz.html">32.&nbsp;&nbsp;Introduction to the Java Persistence API</a></p>
<p class="toc level2"><a href="gijst.html">33.&nbsp;&nbsp;Running the Persistence Examples</a></p>
<p class="toc level2"><a href="bnbtg.html">34.&nbsp;&nbsp;The Java Persistence Query Language</a></p>
<p class="toc level2"><a href="gjitv.html">35.&nbsp;&nbsp;Using the Criteria API to Create Queries</a></p>
<p class="toc level2"><a href="gkjiq.html">36.&nbsp;&nbsp;Creating and Using String-Based Criteria Queries</a></p>
<p class="toc level2"><a href="gkjjf.html">37.&nbsp;&nbsp;Controlling Concurrent Access to Entity Data with Locking</a></p>
<p class="toc level2"><a href="gkjia.html">38.&nbsp;&nbsp;Improving the Performance of Java Persistence API Applications By Setting a Second-Level Cache</a></p>
<p class="toc level1 tocsp"><a href="gijrp.html">Part&nbsp;VII&nbsp;Security</a></p>
<p class="toc level2"><a href="bnbwj.html">39.&nbsp;&nbsp;Introduction to Security in the Java EE Platform</a></p>
<p class="toc level2"><a href="bncas.html">40.&nbsp;&nbsp;Getting Started Securing Web Applications</a></p>
<p class="toc level2"><a href="bnbyk.html">41.&nbsp;&nbsp;Getting Started Securing Enterprise Applications</a></p>
<p class="toc level1 tocsp"><a href="gijue.html">Part&nbsp;VIII&nbsp;Java EE Supporting Technologies</a></p>
<p class="toc level2"><a href="gijto.html">42.&nbsp;&nbsp;Introduction to Java EE Supporting Technologies</a></p>
<p class="toc level2"><a href="bncih.html">43.&nbsp;&nbsp;Transactions</a></p>
<p class="toc level2"><a href="bncjh.html">44.&nbsp;&nbsp;Resource Connections</a></p>
<p class="toc level2"><a href="bncdq.html">45.&nbsp;&nbsp;Java Message Service Concepts</a></p>
<p class="toc level2"><a href="bncgv.html">46.&nbsp;&nbsp;Java Message Service Examples</a></p>
<p class="toc level2"><a href="gkahp.html">47.&nbsp;&nbsp;Advanced Bean Validation Concepts and Examples</a></p>
<p class="toc level2"><a href="gkeed.html">48.&nbsp;&nbsp;Using Java EE Interceptors</a></p>
<p class="toc level1 tocsp"><a href="gkgjw.html">Part&nbsp;IX&nbsp;Case Studies</a></p>
<p class="toc level2"><a href="gkaee.html">49.&nbsp;&nbsp;Duke's Tutoring Case Study Example</a></p>
<p class="toc level3"><a href="gkaei.html">Design and Architecture of Duke's Tutoring</a></p>
<p class="toc level3"><a href="gkafh.html">Main Interface</a></p>
<p class="toc level4"><a href="gkafh.html#gkafj">Java Persistence API Entities Used in the Main Interface</a></p>
<p class="toc level4"><a href="gkafh.html#gkafc">Enterprise Beans Used in the Main Interface</a></p>
<p class="toc level4"><a href="gkafh.html#gkaet">Facelets Files Used in the Main Interface</a></p>
<p class="toc level4"><a href="gkafh.html#gkadh">Helper Classes Used in the Main Interface</a></p>
<p class="toc level4"><a href="gkafh.html#gkada">Properties Files</a></p>
<p class="toc level4"><a href="gkafh.html#gkaev">Deployment Descriptors Used in Duke's Tutoring</a></p>
<p class="toc level3 tocsp"><a href="gkafw.html">Administration Interface</a></p>
<p class="toc level4"><a href="gkafw.html#gkaen">Enterprise Beans Used in the Administration Interface</a></p>
<p class="toc level4"><a href="gkafw.html#gkacb">Facelets Files Used in the Administration Interface</a></p>
<div id="scrolltoc" class="onpage">
<p class="toc level3 tocsp"><a href="">Running the Duke's Tutoring Case Study Application</a></p>
<p class="toc level4"><a href="#gkjol">Setting Up GlassFish Server</a></p>
<p class="toc level5"><a href="#gkjod">Adding a User to the File Realm in GlassFish Server</a></p>
<p class="toc level4 tocsp"><a href="#gkjoa">Running Duke's Tutoring</a></p>
<p class="toc level5"><a href="#gkjnr">To Build and Deploy Duke's Tutoring in NetBeans IDE</a></p>
<p class="toc level5"><a href="#gkjog">To Build and Deploy Duke's Tutoring Using Ant</a></p>
<p class="toc level5"><a href="#gkjoc">Using Duke's Tutoring</a></p>
</div>
<p class="toc level1 tocsp"><a href="idx-1.html">Index</a></p>
</td>
      <td width="10px">&nbsp;</td>
      <td>
         <div class="header">
             <div class="banner">
                <table width="100%" border="0" cellpadding="5" cellspacing="0">
                   <tbody>
                      <tr>
                         <td valign="bottom"><p class="Banner">The Java EE 6 Tutorial
</p></td>
                         <td align="right"  valign="bottom"><img src="graphics/javalogo.png" alt="Java Coffee Cup logo"></td>
                      </tr>
                   </tbody>
                </table>
             </div>

             <div class="header-links">
	         <a href="./index.html">Home</a> | 
<a href="../information/download.html">Download</a> | 
<a href="./javaeetutorial6.pdf">PDF</a> | 
<a href="../information/faq.html">FAQ</a> | 
<a href="http://download.oracle.com/javaee/feedback.htm">Feedback</a>

             </div>
             <div class="navigation">
                 <a href="gkafw.html"><img src="graphics/leftButton.gif" border="0" alt="Previous" title="Previous"></a>
                 <a href="p1.html"><img src="graphics/upButton.gif" border="0" alt="Contents" title="Contents"></a>
                 <a href="idx-1.html"><img src="graphics/rightButton.gif" border="0" alt="Next" title="Next"></a>
             </div>
         </div>

	 <div class="maincontent">      	 
             

<a name="gkjnn"></a><h2>Running the Duke's Tutoring Case Study Application</h2>
<p>This section describes how to build, package, deploy, and run the Duke's Tutoring
application.</p>



<a name="gkjol"></a><h3>Setting Up GlassFish Server</h3>
<p>Before running the Duke's Tutoring application, set up the security realm used by
Duke's Tutoring with users and groups. The user names and passwords set in
this security realm are used to log in to the administration interface of
Duke's Tutoring.</p>

<p>Duke's Tutoring maps users in the <tt>admins</tt> group of the server's security realm
to the <tt>Administrator</tt> role used in the security constraint annotations in <tt>AdminBean</tt>.</p>



<a name="gkjod"></a><h4>Adding a User to the File Realm in GlassFish Server</h4>
<p>Use the Administration Console of GlassFish Server to add a new user
to the <tt>file</tt> security realm.</p>

<p><b>Before You Begin</b></p><p>Make sure GlassFish Server is started as described in <a href="bnadi.html">Starting and Stopping the GlassFish Server</a>.</p>

<ol>
<li><b>Open a web browser to the Administration Console at <tt>http://localhost:4848</tt>.</b></li>
<li><b>In the left pane, expand Configurations &rarr; server-config &rarr; Security &rarr; Realms, and
click &ldquo;file.&rdquo;</b></li>
<li><b>On the Edit Realm page, click Manage Users.</b></li>
<li><b>On the File Users page, click New.</b></li>
<li><b>In the User ID field, type a user name under User ID.</b></li>
<li><b>In the Group List field, type <tt><b>admins</b></tt>.</b></li>
<li><b>In the New Password and Confirm New Password fields, type a password.</b></li>
<li><b>Click OK.</b></li></ol>

<a name="gkjoa"></a><h3>Running Duke's Tutoring</h3>
<p>This section describes how to build, deploy, and run Duke's Tutoring in NetBeans
IDE and using Ant.</p>



<a name="gkjnr"></a><h4>To Build and Deploy Duke's Tutoring in NetBeans IDE</h4>
<p><b>Before You Begin</b></p><p>You must have already configured GlassFish Server as a Java EE server
in NetBeans IDE, as described in <a href="gexaj.html#giqzl">To Add GlassFish Server as a Server in NetBeans IDE</a>.</p>

<ol>
<li><b>From the File menu, choose Open Project.</b></li>
<li><b>In the Open Project dialog, navigate to:</b><pre><tt></tt><i>tut-install</i><tt>/examples/case-studies/</tt></pre></li>
<li><b>Select the <tt>dukes-tutoring</tt> folder.</b></li>
<li><b>Select the Open as Main Project check box and the Open Required Projects
check box.</b></li>
<li><b>Click Open Project.</b>
<hr><p><b>Note - </b>The first time you open Duke's Tutoring in NetBeans, you will see error
glyphs in the project pane. This is expected, as the metamodel files used
by the enterprise beans for Criteria API queries have not yet been
generated.</p>


<hr>
</li>
<li><b>Right-click <tt>dukes-tutoring</tt> in the project pane and select Run.</b><p>This will build, package, and deploy Duke's Tutoring to GlassFish Server, starting the
Java DB database and GlassFish Server if they've not already been started. After
the application has been successfully deployed, the Duke's Tutoring main interface will open
in a web browser if NetBeans IDE has been configured to open web
applications in a web browser.</p></li></ol>

<a name="gkjog"></a><h4>To Build and Deploy Duke's Tutoring Using Ant</h4>
<p><b>Before You Begin</b></p><p>Make sure GlassFish Server is started as described in <a href="bnadi.html">Starting and Stopping the GlassFish Server</a>, and Java
DB server is started as described in <a href="bnadk.html">Starting and Stopping the Java DB Server</a>.</p>

<ol>
<li><b>In a terminal window, go to:</b><pre><tt></tt><i>tut-install</i><tt>/examples/case-studies/dukes-tutoring/</tt></pre></li>
<li><b>Type the following command:</b><pre>ant all</pre><p>This command builds, packages, and deploys Duke's Tutoring to GlassFish Server.</p></li></ol>

<a name="gkjoc"></a><h4>Using Duke's Tutoring</h4>
<p>Once Duke's Tutoring is running on GlassFish Server, use the main interface to
experiment with checking students in and out or sending them to the
park.</p>



<a name="gkjnx"></a><h4>Using the Main Interface of Duke's Tutoring</h4>
<ol>
<li><b>In a web browser, open the main interface at the following URL:
</b><pre><tt>http://localhost:8080/dukes-tutoring/</tt></pre></li>
<li><b>Use the main interface to check students in and out, and to
log when the students go to the park.</b></li></ol>

<a name="gkjnl"></a><h4>Using the Administration Interface of Duke's Tutoring</h4>
<p>Follow these instructions to log in to the administration interface of Duke's Tutoring
and add new students, guardians, and addresses.</p>

<ol>
<li><b>In a web browser, open the administration interface at the following URL:</b><pre><tt>http://localhost:8080/dukes-tutoring/admin/index.xhtml</tt></pre><p>This will redirect you to the login page.</p></li>
<li><b>At the login page, enter the username and password you configured in<a href="#gkjod">Adding a User to the File Realm in GlassFish Server</a> .</b></li>
<li><b>Use the administration interface to add or modify students, guardians, or addresses.</b></li></ol>
         </div>
         <div class="navigation">
             <a href="gkafw.html"><img src="graphics/leftButton.gif" border="0" alt="Previous" title="Previous"></a>
             <a href="p1.html"><img src="graphics/upButton.gif" border="0" alt="Contents" title="Contents"></a>
             <a href="idx-1.html"><img src="graphics/rightButton.gif" border="0" alt="Next" title="Next"></a>
         </div>

         <div class="copyright">
      	    <p>Copyright &copy; 2011, Oracle and/or its affiliates. All rights reserved. <a href="docinfo.html">Legal Notices</a></p>
      	 </div>

      </td>
   </tr>
</tbody>
</table>
</body>
</html>

